<?php

/*
    realizzazione del customtype progetto

    questo va incluso nel file plugin che utilizza il post type

*/


// fissa gli hook
function wpf_progetto_hooks()
{
    // creo il plugin ed i relativi menu
    register_activation_hook(__FILE__, 'wpf_progetto_rewrite_flush');  // serve per i permalink
    
    // inizializza il posttype
    add_action('init', 'wpf_progetto_init');
    add_action('init', 'wpf_progetto_box_init');
    add_action('init', 'wpf_progetto_tassonomie_init');
   
    
    //add_action('contextual_help', 'wpf_progetto_help_text', 10, 3 );

    

    add_action('edit_form_advanced', 'wpf_progetto_tabelle'); // in questo modo le tabelle vengono nel post
    //add_action('admin_init', 'wpf_progetto_add_boxes', 1 ); // in questo modo le tabelle vengono in dei box
    

    // genero la tabella per la visualizzazione dei fascicoli :
    add_filter('manage_wpf_progetto_posts_columns','wpf_progetto_list_column_header'); // aggiunge la colonna "azienda" alla lista dei fascicoli
    add_filter('manage_edit-wpf_progetto_sortable_columns', 'wpf_progetto_list_sort_columns' ); // rende ordinabile per una colonna
    add_action('manage_wpf_progetto_posts_custom_column',  'wpf_progetto_list_column_row', 10, 2 ); // riempie la colonna azienda alla lista dei fascicoli
    add_filter('views_edit-wpf_progetto', 'wpf_progetto_link_list' );  // per aggiungere link nella lista dei progetti

    
    
    add_filter('wpf_progetto_field', 'wpf_progetto_render_field', 10, 2);


    
    add_action( 'save_post', 'wpf_progetto_save',50,2 );
    add_action( 'save_post', 'wpf_progetto_statusflow',10,2 );

    
    //add_action( 'the_post', 'wpf_progetto_extends' ); // aggiunge al progetto i suoi customfields

    add_filter('wpf_progetto_available_statuses','wpf_progetto_filter_status');
    
    // modifico la visualizzazione dei custom-post
    add_filter('the_content','wpf_progetto_view'); 

}

function wpf_progetto_tabelle() {
global $post;
    if ('wpf_progetto'!==$post->post_type) return;

    wpf_progetto_moduli_box();
    wpf_progetto_schedespesa_box();
    wpf_progetto_corsi_box();
}

function wpf_progetto_statusflow($post_id, $post) {
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    if ($post->post_type!='wpf_progetto') return;

    $new_post['ID']=$post_id;
    if (($_POST['original_post_status']=='draft') && ($_POST['post_status']=='publish') )
    {
    	$new_post['post_status']='pending';
	}
	
    if (($_POST['original_post_status']=='pending') && ($_POST['post_status']=='publish') )
    {
    	$new_post['post_status']='approved';
    }   
			
    if (($_POST['original_post_status']=='approved') && ($_POST['post_status']=='publish') )
	{
		$new_post['post_status']='publish';
	}

    if (($_POST['original_post_status']=='publish') && ($_POST['post_status']=='publish') )
	{
		$new_post['post_status']='closed';
	}

    remove_action( 'save_post', 'wpf_progetto_statusflow' ); // to remove loop!!
    wp_update_post($new_post);
    add_action( 'save_post', 'wpf_progetto_statusflow' ); // to add filter for next save!!
}

// inizializza quello che serve
function wpf_progetto_init()
{
	// 	creazione del posttype
	$labels = array(
		    'name' => _x('Progetti', 'I progetti di formazione'),
		    'singular_name' => _x('Progetto', 'Nome singolare dei progetti'),
		    'add_new' => _x('Aggiungi nuovo', 'wp-formazione'),
		    'add_new_item' => __('Nuovo Progetto'),
		    'edit_item' => __('Modifica Progetto'),
		    'new_item' => __('Nuovo progetto'),
		    'all_items' => __('Tutti i progetti'),
		    'view_item' => __('Visualizza questo progetto'),
		    'search_items' => __('Cerca un progetto'),
		    'not_found' =>  __('Nessun progetto trovato'),
		    'not_found_in_trash' => __('Non ci sono progetti nel cestino'),
		    'parent_item_colon' => '',
		    'menu_name' => 'Progetti'
  	);

  	$args = array(
		    'labels' => $labels,
		    'public' => true,
		    'publicly_queryable' => true,
		    'show_ui' => true,
		    'show_in_menu' => true,
		    'query_var' => true,
		    'rewrite' => array('slug' => 'progetto'),
		    'capability_type' => array('progetto', 'progetti'),
		    'map_meta_cap' => true,
		    'has_archive' => true,
		    'hierarchical' => true,
		    'menu_position' => null,
		    'supports' => array('title')
  	);

  	register_post_type('wpf_progetto', $args);

}

function wpf_progetto_tassonomie_init()
{
 	wpf_tassonomia_registra_classificazione('wpf_progetto');
	wpf_tassonomia_registra_argomento('wpf_progetto');
        
	//wpf_tassonomia_registra_partner('wpf_progetto');
}

function wpf_progetto_render_field($field,$field_id) {
global $post;

//campi possibili
// codice, commessa, datainizio, durata, duratamacro, duratamicro, respmacro, respmicro
// fabbisogno, obiettivi, analisi, validazione
// presentazione, descrizione
// esito, datavalida, respvalida

    if ($field_id=='commessa') $field['default']=$post->post_parent;
    if ($field_id=='presentazione') $field['default']=$post->post_excerpt;
    if ($field_id=='descrizione') $field['default']=$post->post_content;
    
    //if (current_user_can('administrator')) return $field; // per ora lo tolgo perchè devo vedere l'effetto
    
    // riporta l'elenco commesse 
    if ($field_id=='commessa') {
                $options = explode(",",$field['values']);$ar=array();
          	foreach($options as $opt) {list($k,$v)=explode(':',$opt); $ar[$k]=$v;}
                $new_values = ' '.$ar[$post->post_parent];
    }
            
            
    switch ($post->post_status) {
        case 'draft':
            if (in_array($field_id,array('presentazione', 'descrizione','esito','datavalida','respvalida'))) 
                        {$field['hidden'] = true;$field['values']='';}
            
            if ($field_id=='commessa') $field['default']=$post->post_parent;
        break;
        case 'pending':
            if (in_array($field_id,array('codice', 'commessa','datainizio','durata','duratamacro','duratamicro','respmacro','respmicro'))) 
                        {$field['readonly'] = true;$field['values']=''; $field['howto']='';}
            if (in_array($field_id,array('presentazione', 'descrizione','esito','datavalida','respvalida'))) 
                        {$field['hidden'] = true;$field['values']='';}
            
            if ($field_id=='commessa')  { 
                         $field['values'] = $new_values;
                        $field['readonly'] = true;            }
        break;
        case 'approved':
            if (in_array($field_id,array('codice','commessa','datainizio','durata','duratamacro','duratamicro','respmacro','respmicro'))) 
                        {$field['readonly'] = true;$field['values']='';$field['howto']='';}
            if (in_array($field_id,array('esito','datavalida','respvalida'))) 
                        {$field['hidden'] = true;$field['values']='';}
            
            if ($field_id=='commessa')  { 
                         $field['values'] = $new_values;
                        $field['readonly'] = true;            }
        break;
        case 'publish':
            if (in_array($field_id,array('codice','commessa','datainizio','durata','duratamacro','duratamicro','respmacro','respmicro','presentazione','descrizione', 'fabbisogno', 'obiettivi', 'analisi', 'validazione'))) 
                        {$field['readonly'] = true; $field['values']='';$field['howto']='';}
            if ($field_id=='commessa')  { 
                         $field['values'] = $new_values;
                        $field['readonly'] = true;
                        }
        break;
        case 'closed':
            $field['readonly'] = true;
            $field['howto']='';
            $field['values']='';
            if ($field_id=='commessa')  { 
                        $field['values'] = $new_values;
                        $field['readonly'] = true;
            }
        break;

        

    }
    

    return $field;
}


function wpf_progetto_box_init() {

  $users_list = get_users(wpf_get_query('utenti_progettazione'));
  $users = '';
  foreach ($users_list as $user)   $users .= $user->user_login.',';
  

  $commesse_list = get_posts(wpf_get_query('commesse_tutte'));
  $commesse = '';
  foreach ($commesse_list as $commessa) $commesse .= $commessa->ID.':'.$commessa->post_title.',';

  $form_fields = array(
        'codice' => array(
                'type' => 'smalltext',
                'description' => __("Codice alfanumerico identificativo", WPF_DOMAIN ),
                'howto' => __("Inserisci qui un codice univoco del progetto", WPF_DOMAIN )
            ),
        'commessa' => array(
                'type' => 'select',
                'values' => '0:nessuna,'.$commesse,
                'description' => __("Commessa di riferimento", WPF_DOMAIN ),
                'howto' => __("Inserisci qui la commessa per la quale si sviluppa il progetto.", WPF_DOMAIN )
            ),
        'datainizio' => array(
                'type' => 'date',
                'description' => __("Data inizio progettazione", WPF_DOMAIN ),
                'howto' => __("Inserisci qui la data ufficiale di inizio del progetto.", WPF_DOMAIN )
            ),
        'durata' => array(
                'type' => 'littlenumber',
                'description' => __("Durata di tutta la progettazione", WPF_DOMAIN ),
                'howto' => __("Inserisci qui i mesi disponibili per completare il progetto (prima di avviare l\'erogazione)", WPF_DOMAIN )
            ),
        'duratamacro' => array(
                'type' => 'littlenumber',
                'description' => __("Durata della macroprogettazione", WPF_DOMAIN ),
                'howto' => __("Inserisci qui i mesi da impiegare per completare la parte di macroprogettazione", WPF_DOMAIN )
            ),
        'duratamicro' => array(
                'type' => 'readonly',
                'description' => __("Durata microprogettazione", WPF_DOMAIN ),
                'howto' => __("Questi sono i mesi rimanenti per la microprogettazione", WPF_DOMAIN )
            ),
        'respmacro' => array(
                'type' => 'select',
                'values' => $users,
                'description' => __("Responsabile della macro-progettazione", WPF_DOMAIN ),
                'howto' => __("Inserisci qui il responsabile della macroprogettazione", WPF_DOMAIN )
            ),
        'respmicro' => array(
                'type' => 'select',
                'values' => $users,
                'description' => __("Responsabile e coordinatore della micro-progettazione", WPF_DOMAIN ),
                'howto' => __("Inserisci qui il coordinatore delle attività per la microprogettazione", WPF_DOMAIN )
            ),

    );

    register_post_box('wpf_progetto', 'pianificazione_progetto', 'Pianificazione progetto', 'normal', 'core', $form_fields);
    
    $form_fields = array(
        'fabbisogno' => array(
                'type' => 'formattedtext',
                'description' => __('Fabbisogni, Esigenze, Motivazioni', WPF_DOMAIN ),
                'howto' => __('Inserisci qui una descrizione dei fabbisogni che hanno indotto alla progettazione del corso, alle esigenze formative riscontrate ed alle motivazioni della strutturazione che si andr? a fare', WPF_DOMAIN )
            ),
        'obiettivi' => array(
                'type' => 'formattedtext',
                'description' => __('Obiettivi del progetto', WPF_DOMAIN ),
                'howto' => __('Inserisci qui una descrizione degli obiettivi da raggiungere attraverso l\'erogazione del corso.', WPF_DOMAIN )
            ),
        'analisi' => array(
                'type' => 'formattedtext',
                'description' => __('Elementi analizzati in ingresso', WPF_DOMAIN ),
                'howto' => __('Inserisci qui una descrizione degli elementi utilizzati per l\'analisi effettuata a monte del progetto, da cui si sono evinti i fabbisogni e si sono definiti gli obiettivi', WPF_DOMAIN )
            ),
        'validazione' => array(
                'type' => 'formattedtext',
                'description' => __('Modalità di validazione del corso', WPF_DOMAIN ),
                'howto' => __('Inserisci qui una descrizione delle modalit? da utilizzare per validare la progettazione del corso, ovvero per verificare che il corso cos? come progettato permette di raggiungere gli obiettivi posti', WPF_DOMAIN )
            ),
    );
    
    register_post_box('wpf_progetto', 'macro_progetto', 'Macroprogettazione progetto', 'normal', 'core', $form_fields);
 
    $form_fields = array(
        'presentazione' => array(
                'type' => 'formattedtext',
                'description' => __('Riassunto breve', WPF_DOMAIN ),
                'howto' => __('Inserisci qui una descrizione breve che anticiperà il contenuto del corso.', WPF_DOMAIN )
            ),
        'descrizione' => array(
                'type' => 'formattedtext',
                'description' => __('Descrizione completa', WPF_DOMAIN ),
                'howto' => __('Inserisci qui la descrizione completa pr i corsi di questo progetto.', WPF_DOMAIN )
            ),
    );
    register_post_box('wpf_progetto', 'descrizione_progetto', 'Presentazione pubblica del progetto', 'normal', 'core', $form_fields);
 
    

   $form_fields = array(
        'esito' => array(
                'type' => 'longtext',
                'description' => __('Esito Validazione', WPF_DOMAIN ),
                'howto' => __('Inserisci qui l\'esito della validazione effettuata secondo la metodologia individuata nella progettazione.', WPF_DOMAIN )
            ),
        'datavalida' => array(
                'type' => 'date',
                'description' => __('Data fine della validazione', WPF_DOMAIN ),
                'howto' => __('Inserisci qui la data in cui la validazione puo\' considerarsi conclusa', WPF_DOMAIN )
            ),
        'respvalida' => array(
                'type' => 'select',
                'values' => $users,
                'description' => __('Utente che ha effetuato la validazione', WPF_DOMAIN ),
                'howto' => __('Inserisci qui una descrizione degli elementi utilizzati per l\'analisi effettuata a monte del progetto, da cui si sono evinti i fabbisogni e si sono definiti gli obiettivi', WPF_DOMAIN )
            ),
    );
    register_post_box('wpf_progetto', 'valida_progetto', 'Validazione del progetto', 'normal', 'core', $form_fields);
 
}

// serve per gestire i permalink
function wpf_progetto_rewrite_flush()
{
	wpf_progetto_init();
	flush_rewrite_rules();
}

// aggiunge i boxes necessari a
function wpf_progetto_add_boxes()
{
    add_meta_box( 'moduli', 'Moduli associati', 'wpf_progetto_moduli_box', 'wpf_progetto', 'side', 'default', '' );
    add_meta_box( 'schedespesa', 'Spese associate', 'wpf_progetto_schedespesa_box', 'wpf_progetto', 'side', 'default', '' );
    add_meta_box( 'corsi', 'Corsi attivati', 'wpf_progetto_corsi_box', 'wpf_progetto', 'side', 'default', '' );
}

/*
// aggiunge al progetto i suoi customtype
function wpf_progetto_extends($post)
{
    
    // solo in caso di progetto
    if ($post->post_type!='wpf_progetto') return;
    $post->codice = get_post_meta($post->ID,'codice',true);
    $post->datainizio = get_post_meta($post->ID,'datainizio',true);
    $post->durata = get_post_meta($post->ID,'durata',true);
    $post->duratamacro = get_post_meta($post->ID,'duratamacro',true);
    $post->duratamicro = get_post_meta($post->ID,'duratamicro',true);
    $post->respmacro = get_post_meta($post->ID,'respmacro',true);
    $post->respmicro = get_post_meta($post->ID,'respmicro',true);
    $post->fabbisogno = get_post_meta($post->ID,'fabbisogno',true);
    $post->obiettivi = get_post_meta($post->ID,'obiettivi',true);
    $post->analisi = get_post_meta($post->ID,'analisi',true);
    $post->validazione = get_post_meta($post->ID,'validazione',true);
    $post->esito = get_post_meta($post->ID,'esito',true);
    $post->datavalida = get_post_meta($post->ID,'datavalida',true);
    $post->respvalida = get_post_meta($post->ID,'respvalida',true);

    //@TODO questo deve passare in rendicontazione
    $post->importo = get_post_meta($post->ID,'importo',true);
    $post->commessa = get_post_meta($post->ID,'commessa',true);
    $post->committenti = get_post_meta($post->ID,'committenti',true);
     
     
}
*/




function wpf_progetto_schedespesa_box() {
//@TODO inserire i campi specifici
//@TODO passare al modulo rendicontazione
global $post;


    $query= wpf_get_query('schedespesa_progetto',$post->ID);
    $columns = array(
        'title' => 'Scheda',
        'status' => 'Stato',
        'tipologia' => 'tipologia'
    );
    $options = array(
        'singular' => 'Scheda',
        'plural' => 'Schede',
        'actions' => array('edit' => 'Edit', 'unlink' => 'Unlink'),
    );
    admin_table_posts($options, $columns, $query );
    $schede_nonassociate_list = query_posts(wpf_get_query('schedespesa_nonassociate'));
    $schede_nonassociate = '<option></option>';
    foreach ($schede_nonassociate_list as $id => $schede) $schede_nonassociate .= '<option value="'.$schede->ID.'">'.$schede->post_title.'</option>';
    echo '<select id="associa_scheda" name="associa_scheda">'.$schede_nonassociate.'</select>';
    echo '<input type="submit" name="associa" id="associa-scheda" value="Associa"  class="button"/>';
    echo '<a href="post-new.php?post_type='.'wpf_scheda_spesa'.'&parent='.$post->ID.'" class="button">'._('Aggiungi nuovo').'</a>';

}



// crea il box per boxname
function wpf_progetto_rendicontazione_box() {
global $post;
  // Use nonce for verification
  wp_nonce_field( plugin_basename( __FILE__ ), 'wpf_progetto_noncename' );
  // The actual fields for data entry

    $readonly= ($post->post_status=='closed')|| ($post->post_status=='publish') || ($post->post_status=='approved');;

    admin_field('importo',($readonly?'readonly':'smalltext'),'Importo stimato totale', get_post_meta($post->ID,'importo',true), $wpf_domain,'Inserisci qui l\'importo totale che si ritiene sar? necessario per realizzare il corso.');
    admin_field('commessa',($readonly?'readonly':'smalltext'),'Codice commessa', get_post_meta($post->ID,'commessa',true), $wpf_domain,'Inserisci qui un codice univoco della commessa per questo progetto');
    // ora qui va un ciclo per inserire i partner o i clienti del progetto da associare alla commessa, e memorizzati come customfield multivalori del progetto
    //@TODO gestire i committenti e partner di commessa
    admin_field('committenti',($readonly?'readonly':'select'),'Committenti|'.$users, get_post_meta($post->ID,'committenti',true), $wpf_domain,'Iserisci i committenti o i partners di questa commessa');


}

// crea il box per boxname
function wpf_progetto_moduli_box() {
global $post;


    $query= wpf_get_query('moduli_progetto',$post->ID);
    $columns = array(
        'title' => 'Modulo',
        'status' => 'Stato'
    );
    $options = array(
        'singular' => 'Modulo',
        'plural' => 'Moduli',
        'actions' => array('edit' => 'Edit', 'unlink' => 'Unlink'),
    );
    admin_table_posts($options, $columns, $query );
        
    if ($post->post_status=='approved') {
        $moduli_nonassociati_list = query_posts(wpf_get_query('moduli_nonassociati'));
        $moduli_nonassociati = '<option></option>';
        foreach ($moduli_nonassociati_list as $id => $modulo) $moduli_nonassociati .= '<option value="'.$modulo->ID.'">'.$modulo->post_title.'</option>';
        echo '<select id="associa_modulo" name="associa_modulo">'.$moduli_nonassociati.'</select>';
        echo '<input type="submit" name="associa" id="associa-modulo" value="Associa"  class="button"/>';
        echo '<a href="post-new.php?post_type='.'wpf_modulo'.'&parent='.$post->ID.'" class="button">'._('Aggiungi nuovo').'</a>';
    }
}

// crea il box per boxname
function wpf_progetto_corsi_box() {
global $post;


    $query= wpf_get_query('corsi_progetto',$post->ID);
    $columns = array(
        'title' => 'Corso',
        'status' => 'Stato'
    );
    $options = array(
        'singular' => 'Corso',
        'plural' => 'Corsi',
        'actions' => array('view' => 'View'),
    );
    admin_table_posts($options, $columns, $query );
    echo '<a href="post-new.php?post_type='.'wpf_corso'.'&parent='.$post->ID.'" class="button">'._('Aggiungi nuovo').'</a>';

}

// cattura e salva i dati 
function wpf_progetto_save( $post_id, $post ) {

    if ($post->post_type != 'wpf_progetto') return;
    if ($post->post_status=='publish') return;
    if ($post->post_status=='approved') return;
    if ($post->post_status=='closed') return;

    $new_post = array(  'ID' => $post_id, 
                        'post_parent' => get_post_meta($post_id, 'commessa',true),
                        'post_content' => $_POST['presentazione'],
                        'post_excerpt'  => $_POST['descrizione']
            );

    remove_action('save_post', 'wpf_progetto_save',50,2);
    wp_update_post($new_post);
    add_action('save_post', 'wpf_progetto_save',50,2);



}



// Genera il Panello di Aiuto nelle schede di admin
function wpf_progetto_help_text($contextual_help, $screen_id, $screen) {
//@TODO inserire il testo di aiuto per la pagina del progetto
  //$contextual_help .= var_dump($screen); // use this to help determine $screen->id
  if ('wpf-progetto' == $screen->id ) {
    $contextual_help =
      '<p>' . __('Questo è un aiuto per inserire correttamente un Progetto:') . '</p>' .
      '<ul>' .
      '<li>' . __('Indica la corretta ragione sociale.') . '</li>' .
      '<li>' . __('Indica il corretto indirizzo.') . '</li>' .
      '</ul>' ;
  } elseif ( 'edit-wpf-progetto' == $screen->id ) {
    $contextual_help =
      '<p>' . __('This is the help screen displaying the table of books blah blah blah.') . '</p>' ;
  }
  return $contextual_help;
}

// modifica il content in base ai custom field del customtype
function wpf_progetto_view($content) {
    global $post;
	//qui gestisco solo i progetti
	if ($post->post_type!='wpf_progetto') return $content;

        $content = '';

        $content.= "<b>{$post->post_excerpt}</b><br />";
        $content.= "<h3>Contenuti</h3><p>{$post->post_content}</p><br />";
        if (current_user_can('viewdetailed_progetti')) {
            $content.= "<h3>Obiettivi</h3><p>{$post->obiettivi}</p><br />";
            $content.= "<h3>Analisi delle informazioni raccolte</h3><p>{$post->analisi}</p><br />";
            $content.= "<h3>Fabbisogni, Esigenze formative e motivazioni</h3><p>{$post->fabbisogno}</p><br />";
            $content.= "<h3>Pianificazione progetto</h3><p><b>data inizio</b> : {$post->datainizio}</p>
                                                    <p><b>durata</b> : {$post->durata} ( {$post->duratamacro} + {$post->duratamicro} )</p>
                                                    <p><b>responsabile macroprogettazione</b> : {$post->respmacro}</p>
                                                    <p><b>coordinatore microprogettazione</b> : {$post->respmicro}</p><br />";
        }
        //@TODO visualizzazione progetto da completare con moduli, corsi attivi e link alla iscrizione
        return $content;
}


// aggiunge il contenuto della colonna nella tabella
function wpf_progetto_list_column_row( $column_name, $id ) {
global $post;

    // verifico quale colonna sto riempiendo
    if ( $column_name == 'status' )   echo $post->post_status;
    if ( $column_name == 'date' )     echo $post->post_date;
    if ( $column_name == 'modules' )     echo 'n.p.';
    if ( $column_name == 'courses' )     echo 'n.p.';
}

// aggiunge le colonne della tabella
function wpf_progetto_list_column_header( $cols ) {
    $newcols['cb'] = $cols['cb']; // <input type="checkbox"/>
    $newcols['title'] = 'Titolo';
    $newcols['status'] = 'Stato';
    $newcols['date'] = 'Data';
    $newcols['modules'] = 'Moduli';
    $newcols['courses'] = 'Corsi';

    foreach ($cols as $k => $v) $newcols[$k] = $v;
    return $newcols;
}
// indica che la colonna è ordinabile
function wpf_progetto_list_sort_columns($cols) {

    $newcols['title'] = 'Titolo';
    $newcols['status'] = 'Stato';
    $newcols['date'] = 'Data';
    foreach ($cols as $k => $v) $newcols[$k] = $v;
    return $newcols;
}

function wpf_progetto_link_list($links) {
//@TODO il link non è corretto
    $links['scheda'] = '<a href="/?index.php">Vedi nella pagina di rendicontazione</a>';
    return $links;
}

function wpf_progetto_filter_status($statuses) {
global $post;

    //@TODO qui dovrei filtrare gli stati in base allo stato attuale del post
    $new_statuses = array();

    $new_statuses['draft']      = $statuses['draft'];
    $new_statuses['pending']    = $statuses['pending'];
    $new_statuses['approved']   = $statuses['approved'];
    $new_statuses['publish']    = $statuses['publish'];
    $new_statuses['closed']     = $statuses['closed'];

    return $new_statuses;

}



wpf_progetto_hooks();

?>